Skip to content

feat(performance): persist and aggregate Web Vitals metrics#792

Merged
RUKAYAT-CODER merged 3 commits into
rinafcode:mainfrom
MerlinTheWhiz:feat/web-vitals-persistence
Jun 28, 2026
Merged

feat(performance): persist and aggregate Web Vitals metrics#792
RUKAYAT-CODER merged 3 commits into
rinafcode:mainfrom
MerlinTheWhiz:feat/web-vitals-persistence

Conversation

@MerlinTheWhiz

Copy link
Copy Markdown
Contributor

Description

Persists incoming Web Vitals metrics to a new web_vitals database table, exposes aggregated data via a GET endpoint, and adds poor-rate alerting when a metric exceeds the 5% threshold.

Changes:

  • Created src/lib/db/migrations/001_create_web_vitals.sql (table DDL with indexes on name, page_url, created_at, rating)
  • Created src/lib/db/migrate.ts — migration runner that tracks applied migrations in a _migrations table
  • Modified src/app/api/performance/vitals/route.ts:
    • Changed runtime from edgenodejs (required for pg access)
    • POST: validates incoming metrics, inserts a row into web_vitals, keeps existing console alerts, and fires an additional alert if poor-rate exceeds 5% over the last 500 sessions
    • GET: new handler returning aggregated metrics (avg_value, poor_rate_pct) grouped by name and page_url, with a configurable ?range=7d|30d|90d|all query parameter
  • Added migrate script to package.json

Related Issue

Closes #764

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update

Checklist

  • Code follows project style guidelines
  • Self-review completed
  • No console errors
  • Uses Lucide icons consistently
  • Responsive design implemented
  • Starknet best practices followed

@drips-wave

drips-wave Bot commented Jun 27, 2026

Copy link
Copy Markdown

@MerlinTheWhiz Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@RUKAYAT-CODER

Copy link
Copy Markdown
Contributor

Great job so far

There’s just one blocker — the workflow is failing. Could you take a look and fix it so all checks pass?

Happy to review again once that’s done.
You can pull from the main first before pushing. The workflow should pass

@MerlinTheWhiz

MerlinTheWhiz commented Jun 27, 2026

Copy link
Copy Markdown
Contributor Author

@RUKAYAT-CODER It was from my edits. I've resolved the issues now, you can merge now. All green.

@MerlinTheWhiz

Copy link
Copy Markdown
Contributor Author

@RUKAYAT-CODER Please hold, don't merge yet.

@MerlinTheWhiz

Copy link
Copy Markdown
Contributor Author

@RUKAYAT-CODER You can merge now. Thanks

@RUKAYAT-CODER

Copy link
Copy Markdown
Contributor

Kindly resolve conflict

@MerlinTheWhiz

Copy link
Copy Markdown
Contributor Author

@RUKAYAT-CODER Very sorry for the delay. I stepped out to touch grass today. I'll get on it soon.

@MerlinTheWhiz MerlinTheWhiz force-pushed the feat/web-vitals-persistence branch 3 times, most recently from 0caf7fc to 72fe830 Compare June 28, 2026 16:56
@MerlinTheWhiz MerlinTheWhiz force-pushed the feat/web-vitals-persistence branch from 72fe830 to f464279 Compare June 28, 2026 17:13
@MerlinTheWhiz

Copy link
Copy Markdown
Contributor Author

@RUKAYAT-CODER I've resolved conflicts. You can merge review and merge.

@RUKAYAT-CODER

Copy link
Copy Markdown
Contributor

Thank you for contributing to the project.

@RUKAYAT-CODER RUKAYAT-CODER merged commit 15d476d into rinafcode:main Jun 28, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Enhancement] Web Vitals endpoint acknowledges POST but never persists or alerts on metrics

2 participants